##### 23.3.3.6 Arithmetic In Guile

The `(gdb)` module provides several functions for performing arithmetic on `<gdb:value>` objects. The arithmetic is performed as if it were done by the target, and therefore has target semantics which are not necessarily those of Scheme. For example operations work with a fixed precision, not the arbitrary precision of Scheme.

Wherever a function takes an integer or pointer as an operand, gdb will convert appropriate Scheme values to perform the operation.

— Scheme Procedure: value-add a b
— Scheme Procedure: value-sub a b
— Scheme Procedure: value-mul a b
— Scheme Procedure: value-div a b
— Scheme Procedure: value-rem a b
— Scheme Procedure: value-mod a b
— Scheme Procedure: value-pow a b
— Scheme Procedure: value-not a
— Scheme Procedure: value-neg a
— Scheme Procedure: value-pos a
— Scheme Procedure: value-abs a
— Scheme Procedure: value-lsh a b
— Scheme Procedure: value-rsh a b
— Scheme Procedure: value-min a b
— Scheme Procedure: value-max a b
— Scheme Procedure: value-lognot a
— Scheme Procedure: value-logand a b
— Scheme Procedure: value-logior a b
— Scheme Procedure: value-logxor a b
— Scheme Procedure: value=? a b
— Scheme Procedure: value<? a b
— Scheme Procedure: value<=? a b
— Scheme Procedure: value>? a b
— Scheme Procedure: value>=? a b

Scheme does not provide a `not-equal` function, and thus Guile support in gdb does not either.